package tp.tecnicasdisenio.model.entity;

import tp.tecnicasdisenio.model.entity.Grupo.ClaveGrupo;


public class Grupo implements Entity<ClaveGrupo>{
	
	private ClaveGrupo claveGrupo;
	
	@Override
	public ClaveGrupo getId() {
		return claveGrupo;
	}
		
	public ClaveGrupo getClaveGrupo() {
		return claveGrupo;
	}

	public void setClaveGrupo(ClaveGrupo claveGrupo) {
		this.claveGrupo = claveGrupo;
	}
	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((claveGrupo == null) ? 0 : claveGrupo.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Grupo other = (Grupo) obj;
		if (claveGrupo == null) {
			if (other.claveGrupo != null)
				return false;
		} else if (!claveGrupo.equals(other.claveGrupo))
			return false;
		return true;
	}

	static public class ClaveGrupo{
		private Integer numero;
		private Cuatrimestre cuatrimestre;
		private Materia materia;
		public Integer getNumero() {
			return numero;
		}
		public void setNumero(Integer numero) {
			this.numero = numero;
		}
		public Cuatrimestre getCuatrimestre() {
			return cuatrimestre;
		}
		public void setCuatrimestre(Cuatrimestre cuatrimestre) {
			this.cuatrimestre = cuatrimestre;
		}
		public Materia getMateria() {
			return materia;
		}
		public void setMateria(Materia materia) {
			this.materia = materia;
		}
		@Override
		public int hashCode() {
			final int prime = 31;
			int result = 1;
			result = prime * result
					+ ((cuatrimestre == null) ? 0 : cuatrimestre.hashCode());
			result = prime * result
					+ ((materia == null) ? 0 : materia.hashCode());
			result = prime * result
					+ ((numero == null) ? 0 : numero.hashCode());
			return result;
		}
		@Override
		public boolean equals(Object obj) {
			if (this == obj)
				return true;
			if (obj == null)
				return false;
			if (getClass() != obj.getClass())
				return false;
			ClaveGrupo other = (ClaveGrupo) obj;
			if (cuatrimestre == null) {
				if (other.cuatrimestre != null)
					return false;
			} else if (!cuatrimestre.equals(other.cuatrimestre))
				return false;
			if (materia == null) {
				if (other.materia != null)
					return false;
			} else if (!materia.equals(other.materia))
				return false;
			if (numero == null) {
				if (other.numero != null)
					return false;
			} else if (!numero.equals(other.numero))
				return false;
			return true;
		}
		
		
	}	
}
